package com.chatplus.application.common.util;

import java.util.Arrays;
import java.util.Objects;

public class IntegerUtils {

    /**
     * 整型类型和整型类型比较是否相等
     *
     * @param source 源数值
     * @param target 目标值
     * @return 比较结果
     */
    public static boolean isIntegerEqual(Integer source, Integer target) {
        if (source == null || target == null) return false;
        return source.intValue() == target.intValue();
    }

    /**
     * 整型类型和整型类型是否不相等
     *
     * @param source 源数值
     * @param target 目标值
     * @return 比较结果
     */
    public static boolean isIntegerNotEqual(Integer source, Integer target) {
        return !isIntegerEqual(source, target);
    }

    /**
     * 获取整形基础类型数值
     *
     * @param input 源数值
     * @return 整形基础类型数值
     */
    public static int getIntegerValue(Integer input, int defaultValue) {
        return input == null ? defaultValue : input;
    }

    /**
     * @param arr   整形集合
     * @param input 需要判断的整形
     * @return 整形集合是否包含整形
     */
    public static boolean contains(Integer[] arr, Integer input) {
        if (arr == null || arr.length == 0 || input == null) return false;
        return Arrays.stream(arr).anyMatch(integer -> isIntegerEqual(integer, input));
    }

    /**
     *  整源数值小于等于目标值
     * @param source 源数值
     * @param target 目标值
     * @return 比较结果
     */
    public static boolean isLte(Integer source, Integer target) {
        return Objects.nonNull(source) && source <= target;
    }
}
